//
//  THJDBManger.m
//  THJXHW
//
//  Created by 河南德艺 on 17/3/23.
//  Copyright © 2017年 河南德艺. All rights reserved.
//

#import "THJDBManger.h"

@implementation THJDBManger
{
    //数据库对象
    FMDatabase *_database;
}
+ (THJDBManger *)sharedManager {
    static THJDBManger *manager = nil;
    @synchronized(self) {//同步 执行 防止多线程操作
        if (manager == nil) {
            manager = [[THJDBManger alloc] init];
        }
    }
    return manager;
}
- (id)init {
    if (self = [super init]) {
        //1.获取数据库文件app.db的路径
        NSString *filePath = [self getFileFullPathWithFileName:@"success.db"];
        //2.创建database
        _database = [[FMDatabase alloc] initWithPath:filePath];
        //3.open
        //第一次 数据库文件如果不存在那么 会创建并且打开
        //如果存在 那么直接打开
        if ([_database open]) {
            NSLog(@"数据库打开成功");
            //创建表 不存在 则创建
            [self creatTable];
        }else {
            NSLog(@"database open failed:%@",_database.lastErrorMessage);
        }
    }
    return self;
}
#pragma mark - 创建表
- (void)creatTable {
    //字段:
    NSString *sql = @"create table if not exists THJDB(serial integer  Primary Key Autoincrement,id Varchar(1024),keyword Varchar(1024))";
    //创建表 如果不存在则创建新的表
    BOOL isSuccees = [_database executeUpdate:sql];
    if (!isSuccees) {
        NSLog(@"creatTable error:%@",_database.lastErrorMessage);
    }
}
//存储类型 favorites downloads browses
- (void)insertRecored:(NSString*)recored {
    NSString *sql2 = @"insert into THJDB(keyword) values (?)";
    BOOL isSuccess = [_database executeUpdate:sql2,recored];
    if (!isSuccess) {
        NSLog(@"insert error:%@",_database.lastErrorMessage);
    }
}

//查询所有数据
- (NSArray *)readAllModels{
    NSString *sql = @"select * from THJDB";
    FMResultSet * rs = [_database executeQuery:sql];
    NSMutableArray *arr = [NSMutableArray array];
    //遍历集合
    while ([rs next]) {
        //把查询之后结果 放在数组
        [arr addObject:[rs stringForColumn:@"keyword"]];
    }
   arr = (NSMutableArray*) [[arr reverseObjectEnumerator] allObjects];
   return arr;
}
//删除所有数据
-(void)deleteAllData{
    NSString *sql = @"delete from THJDB";
    BOOL isSuccess = [_database executeUpdate:sql];
    if (!isSuccess) {
        NSLog(@"删除失败:%@",_database.lastErrorMessage);
    }
}
#pragma mark - 获取文件的全路径

//获取文件在沙盒中的 Documents中的路径
- (NSString *)getFileFullPathWithFileName:(NSString *)fileName {
    NSString *docPath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents"];
    NSFileManager *fm = [NSFileManager defaultManager];
    if ([fm fileExistsAtPath:docPath]) {
        //文件的全路径
        NSLog(@"%@",[docPath stringByAppendingFormat:@"/%@",fileName]);
        return [docPath stringByAppendingFormat:@"/%@",fileName];
    }else {
        //如果不存在可以创建一个新的
        NSLog(@"Documents不存在");
        return nil;
    }
}

@end
